﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Datos;
using Entidades;

namespace Logica
{
    public class PasajerosBLL
    {
        public string Agregar(Usuario u)
        {
            string msg;
            IUsuario my = DAOFactory.getDAOFactory("mysql").getPasajerosDAO();
            try
            {
                my.Conectar();
                my.Insertar(u);
                msg = "Se Guardó";
            }
            catch (Exception ex)
            {
                msg = ex.Message;
            }
            finally
            {
                my.Desconectar();
            }

            return msg;


        }
        public List<Usuario> GetPasajeros()
        {
            List<Usuario> lst;
            IUsuario my = DAOFactory.getDAOFactory("mysql").getPasajerosDAO();
            my.Conectar();
            lst = my.getTodos();
            my.Desconectar();
            return lst;
        }
        public string actualizar(Usuario c)
        {
            string msg,CL;
            IUsuario my = DAOFactory.getDAOFactory("mysql").getPasajerosDAO();
            try
            {
                my.Conectar();
                CL=my.ConsultarClave(c);
                my.Desconectar();       
                my.Conectar();
                c.TipoUsuario = "1";
                my.actualizar(c);
                msg = "Se Actualizo";
               
            }
            catch (Exception ex)
            {
                msg = "Contraseña Incorrecta"; ;
            }
            finally
            {
                my.Desconectar();
            }

            return msg;
        }  
        public string Eliminar(Usuario c)
        {
            string msg,CL;
            IUsuario my = DAOFactory.getDAOFactory("mysql").getPasajerosDAO();
            try
            {
                my.Conectar();
                CL = my.ConsultarClave(c);
                my.Desconectar(); 
                my.Conectar();
                my.Eliminar(c);
                msg = "Se Elimino";
            }
            catch (Exception ex)
            {
                msg = "Contraseña Incorrecta"; ;
            }
            finally
            {
                my.Desconectar();
            }

            return msg;
        }

        public string Login(Usuario u) {
            string msg,EM;
            IUsuario my = DAOFactory.getDAOFactory("mysql").getPasajerosDAO();
            try
            {
                my.Conectar();
                EM=my.ConsultarUsuario(u);
                if (EM.Length > 0)
                {
                    return "si";
                }
                else {
                    return "Contraseña o email Incorrectos";
                }

            }
            catch (Exception ex)
            {
               return msg = "Contraseña o email Incorrectos"; ;
            }
            finally
            {
                my.Desconectar();
            }

        }

        public string TipoUsuario(Usuario u) {
            IUsuario my = DAOFactory.getDAOFactory("mysql").getPasajerosDAO();
            try
            {
                my.Conectar();
                return my.ConsultarTipoUsuario(u);
            }
            catch (Exception ex)
            {
                return ex.ToString() ;
            }
            finally
            {
                my.Desconectar();
            }
        }

        public string ValidarUsuario(string email) { 
            string ban;
             IUsuario my = DAOFactory.getDAOFactory("mysql").getPasajerosDAO();
            try
            {
                my.Conectar();
                ban= my.ConsultarUsuario(email);
                if (ban.Length>0){
                return "Existe";
                }else{
                return "No Existe";
                }

            }
            catch (Exception ex)
            {
                return ex.ToString() ;
            }
            finally
            {
                my.Desconectar();
            }
        }

        public Usuario getpasajero(string email) {
            IUsuario my = DAOFactory.getDAOFactory("mysql").getPasajerosDAO();
            my.Conectar();
            Usuario u = my.getUsuario(email);
            my.Desconectar();
            return u;
        
        }

        

        }

    public class ConductorBLL
    {
        public string Agregar(Usuario u)
        {
            string msg;
            IUsuario my = DAOFactory.getDAOFactory("mysql").getConductoresDAO();
            try
            {
                my.Conectar();
                my.Insertar(u);
                msg = "Se Guardó";
            }
            catch (Exception ex)
            {
                msg = ex.Message;
            }
            finally
            {
                my.Desconectar();
            }

            return msg;


        }
        public List<Usuario> GetConductor()
        {
            List<Usuario> lst;
            IUsuario my = DAOFactory.getDAOFactory("mysql").getConductoresDAO();
            my.Conectar();
            lst = my.getTodos();
            my.Desconectar();
            return lst;
        }
        public string actualizar(Usuario c)
        {
            string msg, CL;
            IUsuario my = DAOFactory.getDAOFactory("mysql").getConductoresDAO();
            try
            {
                my.Conectar();
                CL = my.ConsultarClave(c);
                my.Desconectar();
                my.Conectar();
                c.TipoUsuario = "1";
                my.actualizar(c);
                msg = "Se Actualizo";

            }
            catch (Exception ex)
            {
                msg = "Contraseña Incorrecta"; ;
            }
            finally
            {
                my.Desconectar();
            }

            return msg;
        }
        public string Eliminar(Usuario c)
        {
            string msg, CL;
            IUsuario my = DAOFactory.getDAOFactory("mysql").getConductoresDAO();
            try
            {
                my.Conectar();
                CL = my.ConsultarClave(c);
                my.Desconectar();
                my.Conectar();
                my.Eliminar(c);
                msg = "Se Elimino";
            }
            catch (Exception ex)
            {
                msg = "Contraseña Incorrecta"; ;
            }
            finally
            {
                my.Desconectar();
            }

            return msg;
        }

        public string Login(Usuario u)
        {
            string msg, EM;
            IUsuario my = DAOFactory.getDAOFactory("mysql").getConductoresDAO();
            try
            {
                my.Conectar();
                EM = my.ConsultarUsuario(u);
                if (EM.Length > 0)
                {
                    return "si";
                }
                else
                {
                    return "Contraseña o email Incorrectos";
                }

            }
            catch (Exception ex)
            {
                return msg = "Contraseña o email Incorrectos"; ;
            }
            finally
            {
                my.Desconectar();
            }

        }

        public string TipoUsuario(Usuario u)
        {
            IUsuario my = DAOFactory.getDAOFactory("mysql").getConductoresDAO();
            try
            {
                my.Conectar();
                return my.ConsultarTipoUsuario(u);
            }
            catch (Exception ex)
            {
                return ex.ToString();
            }
            finally
            {
                my.Desconectar();
            }
        }

        public string ValidarUsuario(string email)
        {
            string ban;
            IUsuario my = DAOFactory.getDAOFactory("mysql").getConductoresDAO();
            try
            {
                my.Conectar();
                ban = my.ConsultarUsuario(email);
                if (ban.Length > 0)
                {
                    return "Existe";
                }
                else
                {
                    return "No Existe";
                }

            }
            catch (Exception ex)
            {
                return ex.ToString();
            }
            finally
            {
                my.Desconectar();
            }
        }

        public Usuario getconductor(string email)
        {
            IUsuario my = DAOFactory.getDAOFactory("mysql").getConductoresDAO();
            my.Conectar();
            Usuario u = my.getUsuario(email);
            my.Desconectar();
            return u;

        }


    }
    }


